unit errosdmbk;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Dialogs;

type

  { TErrosData }

  TErrosData = class(TDataModule)
    PrincipalApplicationProperties: TApplicationProperties;
    procedure PrincipalApplicationPropertiesException(Sender: TObject; E: Exception);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  ErrosData: TErrosData;

implementation

uses ZAbstractRODataset;

{ TErrosData }

procedure TErrosData.PrincipalApplicationPropertiesException(Sender: TObject;
  E: Exception);
var
  Msg: string;
begin
  {if (E is EConvertError) then begin
    Msg := 'Erro de conversão';
    Msg := Msg + LineEnding + E.ClassName;
    Msg := Msg + LineEnding + E.Message;
    Msg := Msg + LineEnding + E.ToString;
    Msg := Msg + LineEnding + E.UnitName;
  end else if (E is EZSQLException) then begin
    Msg := 'Erro de banco de dados';
    Msg := Msg + LineEnding + E.ClassName;
    Msg := Msg + LineEnding + E.Message;
    Msg := Msg + LineEnding + E.ToString;
    Msg := Msg + LineEnding + E.UnitName;
  end else begin
    Msg := 'Erro desconhecido';
    Msg := Msg + LineEnding + E.ClassName;
    Msg := Msg + LineEnding + E.Message;
    Msg := Msg + LineEnding + E.ToString;
    Msg := Msg + LineEnding + E.UnitName;
  end;}
  if (E is EZDatabaseError) then begin
    if (EZDatabaseError(E).StatusCode = '23502') then begin
      Msg := 'Você deve preencher todos os campos obrigatórios';

    end;
    Msg := Msg + inttostr( EZDatabaseError(E).ErrorCode) + LineEnding;;
    Msg := Msg + EZDatabaseError(E).StatusCode + LineEnding;
    //Msg := Msg + EZDatabaseError(E). + LineEnding;
  end;
  //Msg := Application.Title + LineEnding;
  Msg := Msg + LineEnding + 'Erro no sistema' + LineEnding;
  Msg := Msg + LineEnding + 'Executável: ' + Application.ExeName;
  Msg := Msg + LineEnding + 'Classe de erro: ' + E.ClassName;
  Msg := Msg + LineEnding + 'Unit: ' + E.UnitName;
  Msg := Msg + LineEnding + 'Detalhes: ' + E.Message;
  ShowMessage(Msg);
end;

initialization
  {$I errosdm.lrs}

end.

